使用easyExcel模板输出 您所在的位置:网站首页 fill up和fill out 使用easyExcel模板输出

使用easyExcel模板输出

#使用easyExcel模板输出| 来源: 网络整理| 查看: 265

使用easyExcel模板输出 一、maven依赖二、导入模板格式要求1、普通填充型2、循环填充型3、组合填充型 三、write()与fill()的区别四、输出文件流五、输出excel文件

一、maven依赖 com.alibaba easyexcel 2.2.3 org.springframework spring-web RELEASE compile org.springframework spring-test RELEASE compile 二、导入模板格式要求 1、普通填充型

使用{parameter}的形式来填充,再代码中设置对应的属性,一个sheet页中的所有参数,在Java中都需要抽象成对象 在这里插入图片描述

2、循环填充型

使用{.parameter}的形式来填充,此填充类型与普通填充型最大的区别在于,他是有方向的,默认方向为从上到下 在这里插入图片描述

3、组合填充型

将普通填充和循环填充结合使用的一种方式,在使用的过程中并不完全依赖对象,有时也需要依赖容器 在这里插入图片描述

三、write()与fill()的区别

在组合填充的过程中,我们会看到两个向excel写入的方法,write() 和 fill() ,他们有什么区别呢? write() 多用于流的输入输出,也可以用于普通的模板填充 fill() 是模板填充的专用方法,它可以设置模板填充时的填充方向

四、输出文件流 创建vo对象 @Data public class TeacherVO { /** * 班级 */ private String clazz; /** * 班主任 */ private String instructor; } 流输出核心代码 String path = ClassUtils.getDefaultClassLoader().getResource("").getPath(); // 获取模板文件路径 String tempFile = path + "static/excelTemplate.xlsx"; // 获取文件输出路径 String file = path + "static/excelResult.xlsx"; // 获取需要填充的对象 TeacherVO teacher = new TeacherVO(); teacher.setClazz("一年级一班"); teacher.setInstructor("张三"); // 以输出流的形式返回给前端 EasyExcel.write(file).withTemplate(tempFile).sheet("sheet2").doFill(teacher); 五、输出excel文件 创建vo对象 @Data public class StudentVO { /** * 学号 */ private String number; /** * 姓名 */ private String name; /** * 语文成绩 */ private String chineseAchievement; /** * 数学成绩 */ private String mathematicsAchievement; /** * 英语成绩 */ private String englishAchievement; } 文件输出核心代码 String path = ClassUtils.getDefaultClassLoader().getResource("").getPath(); // 获取excel模板 String tempFile = path + "static/excelTemplate.xlsx"; // 创建输出流 try (ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream()) { // 将模板输出到创建的输出流中,并创建ExcelWriter对象 ExcelWriter writer = EasyExcel.write(byteArrayOutputStream).withTemplate(tempFile).build(); // 创建WriteSheet对象,指定输出的sheet页 WriteSheet sheet1 = EasyExcel.writerSheet("sheet1").build(); // 创建FillConfig对象,指定输出方向 FillConfig fillConfig = FillConfig.builder().direction(WriteDirectionEnum.VERTICAL).build(); // 获取需要被填充的数据 List studentList = new ArrayList(); for (int i = 0; i e.printStackTrace(); }

【结束语】         几个星期前遇到了一个需求,需要做一个导入功能,在导入数据的过程中需要将错误数据输出到一个excel表格中,我使用redis将正确数据和错误数据分别临时存储,在数据全部正确的时候一起保存数据,并将数据按照以上方式生成了一个excel文件上传到文件服务器备份,以上就是我最终的解决方案,希望可以帮助到有需要的小伙伴



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有